python 调用C语言DLL的方法 |
您所在的位置:网站首页 › python 调用dll函数 › python 调用C语言DLL的方法 |
生成DLL文件
这里使用的开发工具是Dev C++,详细方法可以查看下面这篇文章: Dev c++工具将C代码生成dll文件以及如何调用dll文件 需要注意的一点是,64位python解释器只能调用64位的dll文件,因此需要安装64位编译器来编译C代码。 新建DLL项目点击文件->新建->项目,选择DLL,语言选择C项目,然后选择名称和保存位置。 新项目会默认生成dllmain.c和dll.h两个文件,dll.h中声明了一个函数名,dllmain.c则包含了函数的具体内容,修改函数只需要修改这两个文件中的函数名和函数内容即可,不需要更改其他内容。 修改后,代码中包含了一个名为HelloWorld的函数,功能就是向命令行输出一串文字。 在工具栏选择编译器为64位,如果没有则需要自行安装。
使用python自带的ctypes即可调用,调用步骤是 加载DLL模块定义函数参数类型定义函数返回值类型调用函数 import ctypes libc= ctypes.cdll.LoadLibrary('sample.dll')#这里的参数是文件路径 #libc.HelloWorld.argtypes =[ctypes.c_char_p,ctypes.c_char_p]#指定参数类型,此函数没有参数,仅作示例 #libc.HelloWorld.restype=ctypes.c_double #指定函数的返回值类型,此函数没有返回值,仅作示例 libc.HelloWorld() #调用dll内的函数输出 Hello world from dll!调用成功。 测试为了测试效率首先编写一个即简单又耗时的函数,比如求圆周率: 这个方法借鉴了蒙特卡洛方法,不足之处不必深究,仅仅为了测试效率而已。 def getPi()->float: length=10000 #圆半径长 circle:int=0 #圆形内的点的数量 retangle=length*length#方形区域面积 for x in range(length): for y in range(x): if x*x+y*y |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |